6 VTAB 24: INVERSE : PRINT " PRESS 'RETURN' WHEN READY TO CONTINUE "; CHR$(7);
7 IF PEEK( -16384) <127 THEN 7
8 GET Z9$: IF Z9$ < >R$ THEN 7
9 NORMAL : HOME : RETURN
10 REM
11 Z8$ = "":CH = PEEK(36):CV = PEEK(37)
12 GET Z7$
13 IF Z7$ = CHR$(13) AND Z8$ < >"" THEN RETURN
14 IF Z7$ = CHR$(13) THEN 12
15 PRINT Z7$;
16 IF Z7$ > = "0" AND Z7$ < = "9" THEN LET Z8$ = Z8$ +Z7$: GOTO 12
17 PRINT " ";: FLASH : PRINT "RE-ENTER !!";: FOR I = 1 TO 2000: NEXT I: NORMAL : POKE 36,CH: POKE 37,CV: CALL -958: GOTO 11
18 REM
19 TEXT : HOME : NORMAL : PRINT TAB( 5);
20 INVERSE : PRINT "QUICK REFERENCE GUIDE TO BASIC": NORMAL : POKE 34,1: HOME
21 DIM A$(66)
22 FOR J = 1 TO 66: READ A$(J): NEXT J
23 DATA ABS(X),ASC(A$),ATN(X),CALL(X),CHR$(X),CLEAR,CONT,COS(X),CTRL/C,CTRL/X,"DATA",DEF FNA(X),"DEL X,Y","DIM A(X)",END,EXP(X),FLASH,FOR-NEXT,GET A$,GOSUB-RET
24 DATA GOTO,HOME,HTAB X,IF-THEN,INPUT,INT(X),INVERSE,LEFT$,LEN(A$),LET,LIST,LOAD,LOG(X),MID$,NEW,NEXT,NORMAL,ON-GOSUB,ON-GOTO,ONERRGOTO
25 DATA PEEK(X),"POKE X,Y",POS(0),PRINT,READ,REM,RESTORE,RESUME,RETURN,RIGHT$,RND(1),RUN,SAVE,SGN(X),SIN(X),SPC(X),SPEED=X,SQR(X),STOP,STR$(A),TAB(X),TAN(X),TEXT,TRACE,VAL(A$),VTAB(X)
26 HOME : PRINT CHR$(7);
27 FOR J = 1 TO 9
28 PRINT TAB( 2);J;".";A$(J);
29 PRINT TAB( 15);J +22;".";A$(J +22);
30 PRINT TAB( 29);J +44;".";A$(J +44);
31 IF LEN(A$(J +44)) <9 THEN PRINT
32 NEXT J
33 FOR J = 10 TO 22
34 PRINT J;".";A$(J);
35 PRINT TAB( 15);J +22;".";A$(J +22);
36 PRINT TAB( 29);J +44;".";A$(J +44);
37 IF LEN(A$(J +44)) <9 THEN PRINT
38 NEXT J
39 INVERSE : PRINT "ENTER NO.(0 TO FINISH):"; CHR$(7); CHR$(7);: NORMAL : PRINT " ";: GOSUB 10: IF Z8$ = "0" THEN 377
40 N = VAL(Z8$): IF N <1 OR N >66 THEN HTAB 1: CALL -958: GOTO 39
41 LET T = INT(N/10):U = N -T *10
42 IF N = 20 OR N = 49 THEN HOME : PRINT : INVERSE : PRINT "GOSUB-RETURN": NORMAL : PRINT : GOTO 141
43 IF N = 18 OR N = 36 THEN HOME : PRINT : INVERSE : PRINT "FOR-NEXT": NORMAL : GOTO 127
44 IF N = 17 THEN HOME : VTAB 6: FLASH : PRINT A$(N): NORMAL : PRINT : PRINT : GOTO 123
45 HOME : VTAB 3: INVERSE : PRINT A$(N): NORMAL : PRINT
46 ON T +1 GOTO 47,79,140,192,250,306,344
47 ON U GOTO 48,51,55,58,62,66,69,74,77
48 PRINT "RETURNS THE ABSOLUTE VALUE OF THE ARGUMENT (X), I.E. THE SIGN IS IGNORED."
51 PRINT "RETURNS THE DECIMAL ";: INVERSE : PRINT "ASCII";: NORMAL : PRINT " CODE FOR THE FIRST CHARACTER IN THE ARGUMENT A$."
52 PRINT : PRINT "E.G.": PRINT : PRINT "IF A$=" CHR$(34)"A" CHR$(34)" THEN 65 IS RETURNED.": PRINT : PRINT "IF A$=" CHR$(34)"BCD" CHR$(34)" THEN 66 IS RETURNED.": PRINT : PRINT "IF A$=" CHR$(34)"3" CHR$(34)" THEN 51 IS RETURNED."
53 PRINT : PRINT : PRINT "NOTE:- SEE ";: INVERSE : PRINT "CHR$(A)";: NORMAL : PRINT " FOR REVERSE. USE": INVERSE : PRINT "MID$()";: NORMAL : PRINT " TO OPERATE ON ANY CHARACTER OTHERTHAN THE FIRST IN A STRING."
54 GOSUB 5: GOTO 26
55 PRINT "RETURNS THE ARCTANGENT OF THE ARGUMENT (RADIANS)."
60 PRINT : PRINT "USER-WRITTEN SUBROUTINES MAY ALSO BE CALLED USING THE COMMAND ";: INVERSE : PRINT "CALL(X)";: NORMAL : PRINT ", WHERE THE ARGUMENT 'X' IS THE DECIMAL ADDRESS OF THE SUBROUTINE."
61 GOSUB 5: GOTO 26
62 PRINT "RETURNS THE CHARACTER THE ";: INVERSE : PRINT "ASCII";: NORMAL : PRINT " CODE OF WHICH IS SPECIFIED AS THE ARGUMENT X (WHICH MUST BE IN RANGE 0-255)."
63 PRINT : PRINT "E.G.": PRINT : PRINT "PRINT CHR$(65) PRODUCES THE LETTER 'A'. ": PRINT "PRINT CHR$(66) PRODUCES THE LETTER 'B'. ": PRINT "PRINT CHR$(7) BLEEPS THE BELL."
64 PRINT : PRINT : PRINT "NOTE:- SEE ";: INVERSE : PRINT "ASC(A$)";: NORMAL : PRINT " FOR REVERSE."
65 GOSUB 5: GOTO 26
66 PRINT "SETS ALL NUMERIC VARIABLES TO ZERO AND ALL STRINGS TO NULL STRINGS (APPLESOFT)."
67 PRINT : PRINT "E.G.": PRINT : PRINT "10 CLEAR"
68 GOSUB 5: GOTO 26
69 PRINT "IF PROGRAM EXECUTION HAS BEEN HALTED BY"
70 INVERSE : PRINT "STOP, END, CTRL/C OR RESET";: NORMAL : PRINT " (APPLESOFT)"
71 PRINT "THIS COMMAND WILL CONTINUE AT THE NEXT INSTRUCTION. IT WILL NOT WORK AFTER A CHANGE IN PROGRAM STATEMENT(S), OR IF ANERROR HAS OCCURRED."
72 PRINT : PRINT : PRINT "IT MAY NOT WORK PROPERLY AFTER ";: INVERSE : PRINT "RESET";: NORMAL : PRINT " AS SOME POINTERS AND STACKS ARE CLEARED."
73 GOSUB 5: GOTO 26
74 PRINT "RETURNS THE COSINE OF THE ARGUMENT (X), WHICH MUST BE IN RADIANS."
77 PRINT "MAY BE USED TO INTERRUPT A PROGRAM RUN OR LISTING. TO WORK WITH ";: INVERSE : PRINT "INPUT";: NORMAL : PRINT " IT MUST BE THE FIRST CHARACTER ENTERED, AND THE ";: INVERSE : PRINT "RETURN";: NORMAL : PRINT " KEY MUST THEN BE PRESSED."
78 GOSUB 5: GOTO 26
79 ON U +1 GOTO 80,87,95,104,108,116,119,123,127,134
80 PRINT "TELLS THE APPLE TO IGNORE THE LINE CURRENTLY BEING TYPED, WITHOUT DELETING ANY PREVIOUS LINE OF THE SAME NUMBER. A BACKSLASH ";: INVERSE : PRINT CHR$(92);: NORMAL : PRINT " IS DISPLAYED AT THE END OFTHE LINE BEING IGNORED."
81 PRINT : PRINT "E.G.": PRINT
82 PRINT "10 REM ABC"
83 PRINT "10 REM DEF" CHR$(92)
84 PRINT "LIST 10"
85 PRINT "10 REM ABC"
86 GOSUB 5: GOTO 26
87 VTAB 4: PRINT "NUMERIC AND/OR ALPHANUMERIC DATA ITEMS, EACH SEPARATED BY COMMAS (NONE AT END OFLINE), ARE LISTED IN THIS STATEMENT, AND ARE THEN AVAILABLE FOR USE, IN SEQUENCE, BY ";: INVERSE : PRINT "READ";: NORMAL : PRINT " STATEMENTS."
88 PRINT : INVERSE : PRINT "EXAMPLE": NORMAL
89 PRINT "10 READ A,B2,C$,D3$,E6$"
90 PRINT "20 DATA 234,678,JOHN," CHR$(34)"BROWN,JOHN" CHR$(34)"," CHR$(34)"DATA" CHR$(34)
91 PRINT "NOTES:- THERE SHOULD BE A DATA ITEM OF THE CORRECT TYPE TO MATCH EVERY VARIABLEBEING READ, AND THEY SHOULD BE IN THE CORRECT ORDER. ALSO STRING DATA ITEMS WHICH INCLUDE COMMAS, COLONS OR KEYWORDSSHOULD BE IN DOUBLE QUOTES.";
92 PRINT " DATA LINES MAY BE ANYWHERE IN THE PROGRAM, BUT DATAITEMS ARE TAKEN IN ORDER OF APPEARANCE."
93 PRINT : PRINT "(SEE ALSO ";: INVERSE : PRINT "RESTORE";: NORMAL : PRINT ")."
94 GOSUB 5: GOTO 26
95 PRINT "THIS ENABLES THE PROGRAMMER TO DEFINE A FUNCTION AS BEING EQUAL TO A CHOSEN EXPRESSION. IN LATER USE THE ARGUMENT OF";: INVERSE : PRINT "FNA";: NORMAL : PRINT " WILL BE SUBSTITUTED FOR X IN THE DEFINED EXPRESSION, E.G."
99 PRINT "THE FUNCTION MUST FIRST BE NAMED (USING VALID REAL VARIABLE NAME), AND DEFINED (AS IN LINE 10). ONCE DEFINED IT MAY BE USED BY CALLING IT, THIS TIME WITH THE ARGUMENT (X) HAVING A STATED/COMPUTED VALUE (AS IN LINE 20)."
100 GOSUB 5
101 PRINT "WHEREVER (IF AT ALL) THE ARGUMENT (X) APPEARS IN THE EXPRESSION ON THE RIGHT (IN LINE 10) IT WILL NOW BE GIVEN THE VALUE THE ARGUMENT HAS IN THE LINE IN WHICH THE FUNCTION IS CALLED (2, IN LINE20).";
102 PRINT "THE COMPUTED VALUE OF THE FUNCTION IS NOW USED IN THE CALLING LINE (20)."
103 GOSUB 5: POKE 34,1: GOTO 26
104 PRINT "THIS REMOVES ALL LINES FROM LINE X TO LINE Y (INCLUSIVE) FROM THE PROGRAM."
105 PRINT : PRINT "E.G.": PRINT : PRINT "DEL 50,80": PRINT : PRINT "DELETES ALL LINES THAT EXIST (IF ANY) BETWEEN LINE 50 AND LINE 80, INCLUDING LINES 50 AND 80 THEMSELVES.": PRINT : PRINT
106 PRINT "NOTES:- A DASH WILL NOT DO AS SEPARATOR;A COMMA IS NECESSARY. THIS COMMAND MAY BE USED WITHIN A PROGRAM (WITH A LINE NUMBER), BUT PROGRAM EXECUTION STOPS, AND AS THE PROGRAM HAS BEEN CHANGED THE COMMAND 'CONT' WILL NOT WORK."
107 GOSUB 5: GOTO 26
108 PRINT "RESERVES MEMORY SPACE FOR ARRAYS WHERE THE ARGUMENT REPRESENTS THE MAXIMUM SUBSCRIPT FOR THE ARRAY(S), E.G.": PRINT
109 PRINT "10 DIM A(15),B2(6),C$(20),D3$(8,30)": PRINT
110 POKE 34, PEEK(37): HOME
111 PRINT "ALL ARRAYS SHOULD BE DIMENSIONED BEFORE USE (DEFAULT HOWEVER IS 10). THEY MAY BEDIMENSIONED ONCE ONLY IN A PROGRAM.": PRINT
112 PRINT "ARRAYS MAY BE DIMENSIONED ON SEPARATE LINES, OR ON ONE LINE, AS ABOVE, USING COMMAS AS SEPARATORS.": GOSUB 5
113 PRINT "THE ABOVE EXAMPLE SETS ASIDE MEMORY SPACE FOR 15, 6, AND 30 ELEMENTS IN THE ARRAYS 'A', 'B2', AND 'C$'. SPACE FOR 240 ELEMENTS IS SET ASIDE FOR THE ARRAY (MATRIX) 'D3$', I.E. 8*30.": PRINT
114 PRINT "NOTES:- SOME SYSTEMS (INCLUDING APPLE) ALLOW ZERO SUBSCRIPTS. THUS A(0) IS ADDITIONALLY ALLOWED ABOVE. MULTI- DIMENSIONAL ARRAYS (INCLUDING STRINGS) ARE ALSO ALLOWED, AS IN 'D3$' ABOVE."
115 GOSUB 5: POKE 34,1: GOTO 26
116 PRINT "CAUSES A PROGRAM TO CEASE EXECUTION, ANDRETURNS CONTROL TO THE USER. NO MESSAGE IS PRINTED."
117 PRINT : PRINT "E.G.": PRINT : PRINT "1000 END": PRINT : PRINT "STOPS THE PROGRAM AT LINE 1000.": PRINT : PRINT "NOTE:- NO FULL STOP AFTER 'END'."
118 GOSUB 5: GOTO 26
119 PRINT "RETURNS THE VALUE OF 'E' RAISED TO THE POWER INDICATED BY THE ARGUMENT. (NATURAL ANTI-LOG OF X)."
123 PRINT "SETS VIDEO MODE TO FLASHING, I.E. ALTERNATELY NORMAL AND INVERSE (APPLESOFT)."
124 PRINT : PRINT
125 PRINT "MAY BE USED WITH OR WITHOUT LINENUMBER. ALL SUBSEQUENT OUTPUT (NOT INPUT FROM KEYBOARD) WILL BE IN FLASHING MODE UNTILA 'NORMAL' STATEMENT OR COMMAND. (NOTE THAT 'INVERSE' WOULD ALSO STOP FLASHING BUT OUTPUT WOULD BE IN INVERSE)."
126 GOSUB 5: GOTO 26
127 VTAB 3: HTAB 10: PRINT ": EXAMPLE": PRINT
128 INVERSE : PRINT "FOR";: NORMAL : PRINT " X = A ";: INVERSE : PRINT "TO";: NORMAL : PRINT " B ";: INVERSE : PRINT CHR$(91);"STEP C ]": NORMAL
129 PRINT "STATEMENT(S) TO BE REPEATED": INVERSE : PRINT "NEXT";: NORMAL : PRINT " X": PRINT
130 PRINT "THE STATEMENTS BETWEEN THE ";: INVERSE : PRINT "FOR";: NORMAL : PRINT " AND THE": INVERSE : PRINT "NEXT";: NORMAL : PRINT " ARE EXECUTED FOR ALL THE VALUES OF 'X' BETWEEN 'A' AND 'B', IN STEPS OF 'C'."
131 PRINT "THE SQUARE BRACKETS MEAN OPTIONALITY. IFTHE STEP OPTION IS OMITTED A STEP SIZE OF ONE IS ASSUMED. THE STEP SIZE MAY BE NEGATIVE OR FRACTIONAL IF DESIRED.": PRINT
132 PRINT "CHECKING OF THE COUNTER VARIABLE IS DONEAT THE END OF THE LOOP, AND SO THE INSTRUCTIONS WITHIN THE LOOP ARE ALWAYS EXECUTED AT LEAST ONCE (APPLESOFT)."
133 GOSUB 5: GOTO 26
134 PRINT "FETCHES A SINGLE CHARACTER FROM THE KEYBOARD, WITHOUT SHOWING IT ON THE SCREEN, AND WITHOUT REQUIRING THAT THE": INVERSE : PRINT "RETURN";: NORMAL : PRINT " KEY BE PRESSED - EXAMPLES:"
135 PRINT
136 PRINT "10 GET A": PRINT "20 GET A$": PRINT
137 PRINT "A SINGLE DIGIT MAY BE SOUGHT AT THE KEYBOARD USING A NUMERIC REAL VARIABLE. ANY SINGLE CHARACTER (INCLUDING DIGITS) MAY BE SOUGHT USING A STRING VARIABLE.": PRINT
138 PRINT "IN BOTH CASES A SEPARATE 'PRINT' STATEMENT IS REQUIRED IF IT IS DESIRED TO OUTPUT THE CHARACTER. IN NEITHER CASEIS IT REQUIRED TO PRESS THE 'RETURN' BUTTON. A LINENUMBER HOWEVER IS ALWAYS REQUIRED WITH 'GET'."
139 GOSUB 5: GOTO 26
140 ON U +1 GOTO 141,147,152,155,159,168,176,182,185,189
141 VTAB 3: HTAB 15: PRINT ": EXAMPLE": PRINT
142 PRINT "100 REM SUBROUTINE BEGINS": INVERSE : PRINT "BODY OF SUBROUTINE": NORMAL : PRINT "150 RETURN:REM END OF SUBROUTINE => BACKTO MAIN PART OF PROGRAM": PRINT : PRINT
143 PRINT "600 GOSUB 100:REM TO SUBROUTINE @ L.100 610 REM RETURN TO HERE": PRINT : PRINT : PRINT "800 GOSUB 100:REM TO SUBROUTINE @ L.100 810 REM RETURN TO HERE": PRINT
144 PRINT "CAUSES THE PROGRAM TO BRANCH TO THE INDICATED LINE. WHEN A ";: INVERSE : PRINT "RETURN";: NORMAL : PRINT " STATEMENT IS EXECUTED THE PROGRAM BRANCHES TO THE STATEMENT IMMEDIATELY FOLLOWING THE MOSTRECENTLY EXECUTED ";: INVERSE : PRINT "GOSUB";: NORMAL
145 PRINT "."
146 GOSUB 5: GOTO 26
147 PRINT "CAUSES THE PROGRAM TO BRANCH (JUMP) UNCONDITIONALLY, FORWARDS OR BACKWARDS TO THE INDICATED LINE."
150 PRINT "MAY ALSO BE USED IN DIRECT MODE, I.E. WITHOUT LINENUMBER. THIS IS SOMETIMES USEFUL AS GOTO DOES NOT CLEAR VARIABLES,WHEREAS 'RUN' WOULD RESET ALL VARIABLES TO ZERO OR THE NULL STRING."
151 GOSUB 5: GOTO 26
152 PRINT "MOVES THE CURSOR TO THE UPPER LEFT SCREEN POSITION WITHIN THE TEXT WINDOW, AND CLEARS ALL TEXT IN THE WINDOW. (APPLESOFT).": PRINT
153 PRINT "NOTE:- MAY BE USED WITH OR WITHOUT LINE-NUMBER. THE CURRENT SCREEN (USUALLY THE FULL SCREEN) IS CLEARED. MEMORY IS NOT CLEARED. THE SAME EFFECT AS 'HOME' MAY BE ACHIEVED BY 'CALL-936' OR 'ESC/@."
154 GOSUB 5: GOTO 26
155 PRINT "MOVES THE CURSOR LEFT OR RIGHT TO THE SPECIFIED COLUMN (1-40) ON THE SCREEN. (APPLESOFT).
156 PRINT : PRINT "MAY BE USED WITH OR WITHOUT LINE NUMBER.NOTE THAT THE USUAL 'TAB' FUNCTION MUST BE USED WITH THE 'PRINT' STATEMENT, AND THE CURSOR MAY ONLY MOVE FORWARDS."
157 PRINT "'HTAB' ENABLES THE CURSOR TO MOVE EITHERFORWARDS OR BACKWARDS, AND IS USED AS A STATEMENT IN ITS OWN RIGHT."
158 GOSUB 5: GOTO 26
159 VTAB 3: HTAB 10: PRINT "SYNTAX IS:": PRINT
160 INVERSE : PRINT "IF";: NORMAL : PRINT "<CONDITION>";: INVERSE : PRINT "THEN";: NORMAL : PRINT "<LINENUMBER/STATEMENT>"
161 PRINT
162 PRINT "IF THE CONDITION IS TRUE THEN THE INSTRUCTION(S) FOLLOWING ";: INVERSE : PRINT "THEN";: NORMAL : PRINT " IN THE SAME LINE WILL BE EXECUTED, OTHERWISE NEXT STATEMENT LINE WILL BE EXECUTED."
163 PRINT : INVERSE : PRINT "EXAMPLES": NORMAL
164 PRINT "100 IF A=B THEN 150": PRINT "OTHER STATEMENTS (EXECUTED IF A<>B)": PRINT "150 PRINT " CHR$(34)"NUMBERS EQUAL" CHR$(34): INVERSE : PRINT : PRINT "OR": NORMAL
165 PRINT "100 IF A=B THEN PRINT " CHR$(34)"NUMBERS EQUAL" CHR$(34): PRINT
166 PRINT "NOTES:- A JUMP MAY BE MADE FORWARDS OR BACKWARDS IN THE PROGRAM. ALL SYSTEMS DONOT ALLOW A STATEMENT FOLLOWING THE 'THEN'."
170 PRINT : PRINT "WAITS FOR USER TO ENTER DATA WHILE THE PROGRAM IS RUNNING, IN RESPONSE TO EITHER A QUESTION MARK OR AN OPTIONAL PROMPT MESSAGE."
171 PRINT
172 INVERSE : PRINT "EXAMPLES": NORMAL
173 PRINT "10 INPUT A : REM '?' OUTPUT": PRINT "20 INPUT " CHR$(34)"ENTER NUMBER" CHR$(34)";A": PRINT
174 PRINT "LINE 10 IS BAD PROGRAMMING, UNLESS PRECEDED BY A SEPARATE 'PRINT' STATEMENTREQUESTING EXPLICIT DATA. MORE THAN ONE ITEM MAY BE REQUESTED IN THE SAME 'INPUT' STATEMENT BY USING COMMAS AS SEPARATORS BETWEEN VARIABLES."
175 GOSUB 5: GOTO 26
176 PRINT "RETURNS THE LARGEST INTEGER LESS THAN OREQUAL TO THE GIVEN ARGUMENT."
180 PRINT : PRINT "NOTE:- THIS FUNCTION ON ITS OWN ROUNDS DOWN ANY NUMBER TO THE WHOLE NUMBER LESSTHAN (OR EQUAL TO) IN VALUE TO THE NUMBER IN QUESTION."
181 GOSUB 5: GOTO 26
182 PRINT "SETS THE VIDEO MODE SO THAT THE OUTPUT PRINTS AS BLACK LETTERS ON WHITE ON THE SCREEN. USE ";: INVERSE : PRINT "NORMAL";: NORMAL : PRINT " TO RETURN TO WHITE ONBLACK."
183 PRINT : PRINT "THIS COMMAND MAY BE USED EITHER WITH OR WITHOUT A LINENUMBER. ALL OUTPUT (NOT INPUT FROM KEYBOARD) WILL BE IN THIS MODE UNTIL EITHER A 'NORMAL' COMMAND OR A 'FLASH' COMMAND IS EXECUTED."
184 GOSUB 5: GOTO 26
185 INVERSE : PRINT "LEFT$(A$,X)";: NORMAL : PRINT " RETURNS THE 'X' LEFTMOST CHARACTERS IN THE STRING A$."
186 PRINT : PRINT "E.G.": PRINT
187 PRINT "IF A$=" CHR$(34)"MARY" CHR$(34)", AND X=2, THEN THE LETTERS 'MA' WILL BE OUTPUT."
188 GOSUB 5: GOTO 26
189 PRINT "RETURNS THE NUMBER OF CHARACTERS IN THE STRING A$."
190 PRINT : PRINT "E.G.": PRINT : PRINT "IF A$=" CHR$(34)"MARY" CHR$(34)", THEN THE OUTPUT WILL BE 4."
191 GOSUB 5: GOTO 26
192 ON U +1 GOTO 193,202,208,215,220,226,327,231,235,243
193 VTAB 3: HTAB 8: PRINT "SYNTAX IS:": PRINT
194 INVERSE : PRINT "LET";: NORMAL : PRINT " <VARIABLE> = <EXPRESSION>": PRINT : POKE 34, PEEK(37): HOME
195 PRINT "THE EXPRESSION ON THE RIGHT IS FIRST EVALUATED. THE VARIABLE NAME ON THE LEFTIS THEN ASSIGNED THE VALUE OF THE EXPRESSION ON THE RIGHT."
196 PRINT : PRINT "THERE MAY ONLY BE A SINGLE VARIABLE (OR ARRAY ELEMENT) ON THE LEFT OF THIS STATEMENT. THE EXPRESSION MAY BE A SINGLE VARIABLE, CONSTANT, ANY FUNCTION OR COMBINATION OF THESE.": PRINT
197 GOSUB 5: INVERSE : PRINT "EXAMPLES": NORMAL
198 PRINT "10 LET A=6": PRINT "20 LET B(3)=A*B+7-INT(X)": PRINT "30 LET N$ = " CHR$(34)"JOHN" CHR$(34): PRINT "40 LET A=ASC(A$)": PRINT
199 PRINT "SOME SYSTEMS (INCLUDING APPLE) ALLOW THEUSE OF 'LET' TO BE OPTIONAL, E.G. 10 A=6 WOULD DO INSTEAD OF LINE 10 ABOVE. HOWEVER TO USE 'LET' IS MORE MEANINGFUL."
200 PRINT : PRINT : INVERSE : PRINT "LET";: NORMAL : PRINT " MAY BE USED WITH OR WITHOUT A": PRINT "LINENUMBER."
201 GOSUB 5: POKE 34,1: GOTO 26
202 INVERSE : PRINT "LIST";: NORMAL : PRINT " ON ITS OWN LISTS PROGRAM IN MEMORY IN FULL.": PRINT
203 INVERSE : PRINT "LIST 100";: NORMAL : PRINT " LISTS LINE 100 ONLY.": PRINT
204 INVERSE : PRINT "LIST 100-200";: NORMAL : PRINT " LISTS ALL LINES IN RANGE 100-200.": PRINT
205 INVERSE : PRINT "LIST -100";: NORMAL : PRINT " LISTS ALL LINES UP TO LINE 100.": PRINT
206 INVERSE : PRINT "LIST 100-";: NORMAL : PRINT " LISTS ALL LINES FROM LINE 100 TO THE END OF THE PROGRAM.": PRINT
207 GOSUB 5: GOTO 26
208 INVERSE : PRINT "LOAD";: NORMAL : PRINT "<PROGRAM NAME> READS PROGRAM NAMED INTO MEMORY FROM DISK."
209 PRINT : PRINT "N.B. NO QUOTES AROUND PROGRAM NAME ON APPLE."
210 PRINT : PRINT : FLASH : PRINT "WARNING": NORMAL
211 PRINT : INVERSE : PRINT "LOAD";: NORMAL : PRINT " WITHOUT A PROGRAM NAME EXPECTS A PROGRAM FROM CASSETTE TAPE. IF THERE IS NO CASSETTE RECORDER LINKED TO APPLE THECURSOR WILL DISSAPPEAR AND YOU WILL BE LEFT WAITING INDEFINITELY. TO RECOVER"
220 INVERSE : PRINT "MID$(A$,X,Y)";: NORMAL : PRINT " RETURNS THE 'Y' CHARACTERS IN THE STRING A$, STARTING AT THE X'TH CHARACTER."
221 PRINT : PRINT "E.G.": PRINT : PRINT "IF A$=" CHR$(34)"MARY" CHR$(34)", IF X=2, AND IF Y=1, THEN THE OUTPUT WILL BE THE LETTER 'A'.": PRINT
222 PRINT
223 INVERSE : PRINT "MID$(A$,X)";: NORMAL : PRINT " RETURNS ALL THE RIGHTMOST CHARACTERS IN THE STRING A$, STARTING ATTHE XTH CHARACTER (I.E. WHEN THE LAST ARGUMENT IS MISSING).";
224 PRINT " IN THE ABOVE EXAMPLE, IF 'Y' WAS MISSING THEN THE OUTPUT WOULD BE 'ARY'."
225 GOSUB 5: GOTO 26
226 PRINT "CLEARS MEMORY, DELETING CURRENT PROGRAM AND ALL VARIABLES."
227 PRINT : PRINT "THIS COMMAND MAY BE USED WITH OR WITHOUTLINENUMBERS, BUT ";: FLASH : PRINT "BEWARE";: NORMAL : PRINT ".": PRINT : PRINT
228 PRINT "MAKE SURE YOU ";: INVERSE : PRINT "SAVE";: NORMAL : PRINT " ANY PROGRAM IN MEMORYTHAT YOU WISH TO KEEP BEFORE YOU TYPE ";: INVERSE : PRINT "NEW";: NORMAL : PRINT ". IF YOU HAVE THIS STATEMENT WITHIN A PROGRAM BE SURE TO SAVE IT BEFORE YOU RUN IT."
229 PRINT : PRINT "N.B. THIS COMMAND ONLY CLEARS MEMORY, ITDOES NOT CLEAR THE SCREEN. (SEE 'HOME' FOR THIS)."
230 GOSUB 5: GOTO 26
231 PRINT "SETS VIDEO MODE TO THE USUAL WHITE LETTERS ON BLACK BACKGROUND FOR BOTH INPUT AND OUTPUT."
232 PRINT : PRINT : PRINT "THIS COMMAND MAY BE USED WITH OR WITHOUTLINENUMBERS. IT IS NORMALLY USED TO RETURN FROM ";: INVERSE : PRINT "INVERSE";: NORMAL : PRINT " OR ";: FLASH : PRINT "FLASH";: NORMAL
233 PRINT " MODES. IN EACH CASE OUTPUT STAYS IN THE SPECIFIED MODE UNTIL CHANGED. INPUT IS ALWAYS IN NORMAL MODE, HOWEVER."
234 GOSUB 5: GOTO 26
235 VTAB 3: HTAB 11: PRINT "SYNTAX IS:": PRINT
236 INVERSE : PRINT "ON";: NORMAL : PRINT "<EXPRESSION>";: INVERSE : PRINT "GOSUB";: NORMAL : PRINT "100,200,300,ETC": PRINT
237 PRINT "EXECUTES A GOSUB TO THE LINE NUMBER INDICATED BY THE VALUE OF THE EXPRESSIONFOLLOWING ";: INVERSE : PRINT "ON";: NORMAL : PRINT "."
238 PRINT : INVERSE : PRINT "EXAMPLE": NORMAL
239 PRINT "50 ON X GOSUB 100,200,300,400,500": PRINT
250 ON U +1 GOTO 251,256,261,267,271,281,289,297,303,340
251 PRINT "THIS IS USED TO BRANCH TO ONE'S OWN ROUTINE TO AVOID STANDARD ERROR MESSAGESAND AVOIDING A NECESSARY HALT IN THE RUNNING OF A PROGRAM. A LINENUMBER FOLLOWS THIS STATEMENT."
252 PRINT : PRINT "THIS STATEMENT CAN ONLY BE USED IN PROGRAMS, I.E. WITH A LINE NUMBER."
253 PRINT : PRINT
254 PRINT "SEE ALSO ";: INVERSE : PRINT "RESUME";: NORMAL : PRINT "."
255 GOSUB 5: GOTO 26
256 PRINT "RETURNS THE CONTENTS, IN DECIMAL, OF THEBYTE OF THE SPECIFIED DECIMAL ADDRESS."
257 PRINT : PRINT "THIS COMMAND ENABLES US TO EXAMINE THE CONTENTS OF ANY MEMORY LOCATION. THE RESULT WILL BE A DECIMAL NUMBER IN THE RANGE 0-255, E.G.": PRINT
259 PRINT : PRINT "THIS IS THE CONTENTS OF THE MEMORY LOCATION FOR THE WIDTH OF THE TEXT 'WINDOW' WHICH IS NORMALLY THE FULL WIDTH, UNLESS CHANGED."
260 GOSUB 5: GOTO 26
261 PRINT "STORES THE BINARY EQUIVALENT OF THE SECOND ARGUMENT 'Y' (IN RANGE 0-255) INTO THE MEMORY LOCATION WHOSE DECIMAL ADDRESS IS GIVEN BY THE FIRST ARGUMENT."
262 PRINT : PRINT "THIS COMMAND ENABLES US TO PUT A DESIREDVALUE IN THE ABOVE RANGE INTO A MEMORY LOCATION AVAILABLE TO US.": PRINT
263 PRINT "E.G.": PRINT
264 PRINT "POKE 33,30": PRINT
265 PRINT "THIS EXAMPLE PUTS THE VALUE 30 INTO THE STORE LOCATION RESERVED FOR THE WIDTH OFTHE TEXT WINDOW. THE NORMAL VALUE FOR THIS IS 40. THE EXAMPLE HERE SETS THE WIDTH TO 30."
266 GOSUB 5: GOTO 26
267 PRINT "RETURNS THE CURRENT HORIZONTAL POSITION OF THE CURSOR (0-39)."
268 PRINT : PRINT "THIS COMMAND MAY BE USED EITHER WITH OR WITHOUT LINENUMBERS.": PRINT
269 PRINT "THIS COMMAND IS AVAILABLE IN APPLESOFT, BUT NOT IN ALL VERSIONS OF BASIC. IN SOME VERSIONS IT MAY HAVE A DIFFERENT MEANING."
270 GOSUB 5: GOTO 26
271 HOME : PRINT : INVERSE : PRINT "PRINT";: NORMAL : PRINT " EXAMPLE:": PRINT
274 PRINT "MAY BE USED TO PRINT BLANK LINES (ON ITSOWN), MESSAGES (IN DOUBLE QUOTES),SINGLEVARIABLES, AND EXPRESSIONS, OR ANY COMBINATION OF THESE."
275 PRINT
276 PRINT "DELIMITERS/TERMINATORS"
277 PRINT "----------------------"
278 PRINT "COMMA => NEW FIELD (16,16,8 ON APPLE)": PRINT "SEMI-COLON => NO SPACES TO BE LEFT": PRINT "NO TERMINATOR (I.E.CARR.RET.)=>NEW LINE"
279 PRINT : PRINT "N.B.";: INVERSE : PRINT "PRINT TAB(X);";: NORMAL : PRINT " MAY BE USED FOR MORE PRECISE LAYOUT, WHERE 'X' MAY BE PRE- DEFINED IN RANGE 1-40."
280 GOSUB 5: GOTO 26
281 REM
282 VTAB 4
283 PRINT "ASSIGNS THE VARIABLES LISTED (SEPARATED BY COMMAS - NONE AFTER LAST), WITH SUCCESSIVE VALUES FROM THE DATA ITEMS LISTED IN ";: INVERSE : PRINT "DATA";: NORMAL : PRINT " STATEMENTS."
286 PRINT "NOTE:- THIS STATEMENT MAY BE USED IF THEDATA ITEMS ARE KNOWN WHEN THE PROGRAM ISBEING WRITTEN. A MIXTURE OF VARIABLE TYPES IS ALLOWED, BUT THERE MUST BE A DATA ITEM TO MATCH EVERY VARIABLE BEING READ, AND THEY MUST BE IN THE ";
287 PRINT "CORRECT ORDER. STRING DATA ITEMS WHICH INCLUDE COMMAS, COLONS, OR KEYWORDS, SHOULD BE IN DOUBLE QUOTES. DATA LINES MAY BE ANYWHERE IN A PROGRAM, BUT ARE TAKEN IN ORDER OF APPEARANCE. (SEE ALSO ";: INVERSE : PRINT "RESTORE";: NORMAL
288 PRINT ").": GOSUB 5: GOTO 26
289 VTAB 4: PRINT "ANY TEXT MAY FOLLOW THIS STATEMENT, NO QUOTES NEEDED. IT ALLOWS TEXT TO BE INSERTED INTO A PROGRAM AS REMARKS.THE RUNNING OF THE PROGRAM IS NOT AFFECTED. IF USED IN A MULTI-STATEMENT LINE IT"
290 PRINT "MUST BE THE LAST STATEMENT IN THE LINE.": INVERSE : PRINT "REM";: NORMAL : PRINT " IS USED TO HELP ANY PROGRAMMER TO UNDERSTAND A PROGRAM LISTING."
291 PRINT : INVERSE : PRINT "EXAMPLES": NORMAL
292 PRINT "10 REM WAGES PROGRAM": PRINT "100 REM SORT NAMES ALPHABETICALLY": PRINT "300 REM INITIALISE COUNTER:LET C=0": PRINT
293 FLASH : PRINT "WARNING";: NORMAL
294 PRINT ":-ANY TEXT (INCLUDING STATEMENTS)AFTER ";: INVERSE : PRINT "REM";: NORMAL
295 PRINT " ON THE SAME STATEMENT LINE WILL MERELY BE LISTED. THEY WILL NEVER BE EXECUTED. THE STATEMENT 'LET C=0' IN LINE 300 ABOVE WILL NOT BE EXECUTED."
296 GOSUB 5: GOTO 26
297 VTAB 4: PRINT "USED IN CONJUNCTION WITH ";: INVERSE : PRINT "READ/DATA": NORMAL : PRINT "STATEMENTS ONLY. IT RESETS THE DATA LISTPOINTER TO THE FIRST DATA ITEM IN THE LIST."
300 PRINT "EXPLANATION:- AFTER LINE 10 THE DATA 'POINTER' WILL BE POINTING TO THE END OFTHE LIST. LINE 200 WILL RESET THE POINTER TO THE FIRST DATA ITEM IN THE LIST, I.E. '5'. IT IS NOW POSSIBLE TO RE-READ THE DATA LIST FROM THE ";
301 PRINT "START. X,Y, AND Z WILL NOW BE ASSIGNED THE VALUES 5,6, AND 7."
302 GOSUB 5: GOTO 26
303 PRINT "AT THE END OF AN ERROR-HANDLING ROUTINE (SEE ";: INVERSE : PRINT "ONERRGOTO";: NORMAL : PRINT ") CAUSES THE RESUMPTION OFTHE PROGRAM AT THE STATEMENT IN WHICH THE ERROR OCCURRED."
304 PRINT : PRINT "THIS COMMAND MAY ONLY BE USED WITHIN A PROGRAM, I.E. WITH A LINE NUMBER."
305 GOSUB 5: GOTO 26
306 ON U +1 GOTO 307,312,317,321,326,329,332,335,339,342
307 PRINT "EXAMPLE:": PRINT "-------": PRINT
308 INVERSE : PRINT "RIGHT$(A$,X)": NORMAL : PRINT
309 PRINT "RETURNS THE 'X' RIGHTMOST CHARACTERS IN THE STRING A$."
310 PRINT : PRINT "IF A$=" CHR$(34)"MARY" CHR$(34)", AND IF X=2, THEN THE LETTERS 'RY' WILL BE OUTPUT."
311 GOSUB 5: GOTO 26
312 PRINT "RETURNS A REAL NUMBER IN THE RANGE 0-0.999999999"
314 PRINT "WE CAN OF COURSE MANIPULATE THIS FUNCTION TO OBTAIN A RANDOM NO. WITHIN ANY PRESCRIBED INTEGER LIMITS BY USING THE 'INT' FUNCTION AND MULTIPLICATION.": PRINT
315 PRINT "METHOD:-MULTIPLY THE RANDOM NO. BY THE INCLUSIVE RANGE, ADD THE LOWER LIMIT, AND TRUNCATE.": PRINT : PRINT "E.G. PRINT INT(RND(1)*(B-A+1)+A) WILL PRODUCE A RANDOM NUMBER BETWEEN 'A' AND 'B'."
316 GOSUB 5: GOTO 26
317 INVERSE : PRINT "RUN";: NORMAL : PRINT CHR$(91);"LINENUMBER]": PRINT
318 PRINT "CLEARS ALL VARIABLES AND POINTERS AND BEGINS EXECUTION AT THE INDICATED LINE, IF GIVEN, OTHERWISE IT BEGINS AT THE LOWEST LINE NUMBER."
319 PRINT : PRINT : INVERSE : PRINT "RUN";: NORMAL : PRINT "<PROGRAM NAME>: LOADS AND RUNS THE PROGRAM NAMED FROM DISK. (N.B. NO QUOTESAROUND PROGRAM NAME)."
320 GOSUB 5: GOTO 26
321 INVERSE : PRINT "SAVE";: NORMAL : PRINT "<PROGRAM NAME> SAVES PROGRAM CURRENTLY IN MEMORY ONTO DISK.": PRINT
322 PRINT "N.B.NO QUOTES AROUND PROGRAM NAME ON APPLE.": PRINT : PRINT
323 FLASH : PRINT "WARNING": NORMAL : PRINT : PRINT "THIS COMMAND WILL OVERWRITE ANY PROGRAM WITH THE SAME NAME (UNLESS LOCKED).": PRINT : PRINT "IF USED WITHOUT FILENAME SAVING ON CASSETTE TAPE IS ASSUMED. IF NO CASSETTERECORDER LINKED THEN APPLE WILL HANG-UP.
324 PRINT "TO RECOVER PRESS 'RESET'."
325 GOSUB 5: GOTO 26
326 PRINT "RETURNS -1 IF X IS NEGATIVE 0 IF X IS ZERO +1 IF X IS POSITIVE"
332 PRINT "USED IN A ";: INVERSE : PRINT "PRINT";: NORMAL : PRINT " STATEMENT, INTRODUCES X SPACES BETWEEN THE LAST ITEM PRINTED ANDTHE NEXT ITEM (PROVIDED SEMI-COLONS USEDBEFORE AND AFTER)."
335 PRINT "SETS SPEED OF OUTPUT TO SCREEN OR OTHER INPUT/OUTPUT DEVICES. THE SLOWEST RATE IS 0, AND THE FASTEST IS 255 (DEFAULT SPEED)."
336 PRINT : PRINT "THIS COMMAND MAY BE USED WITH OR WITHOUTLINENUMBERS."
337 PRINT : PRINT "SPEED=0": PRINT : SPEED= 0: PRINT "SPEED IS NOW AT SLOWEST. ONCE SPEED IS CHANGED IT WILL STAY AT THE NEW SPEED UNTIL RESET.": PRINT : PRINT "SPEED=255": SPEED= 255: PRINT : PRINT "SPEED IS NOW BACK TO NORMAL"
338 GOSUB 5: GOTO 26
339 PRINT "RETURNS THE SQUARE ROOT OF X."
340 PRINT : PRINT "PRINT SQR(9) YIELDS 3"
341 GOSUB 5: GOTO 26
342 PRINT "CAUSES A PROGRAM TO CEASE EXECUTION AND DISPLAY THE LINE NUMBER AT WHICH IT STOPPED. CONTROL IS PASSED TO THE USER. THE PROGRAM MAY BE CONTINUED (IF POSSIBLE) USING ";: INVERSE : PRINT "CONT";: NORMAL : PRINT "."
343 GOSUB 5: GOTO 26
344 ON U +1 GOTO 345,353,359,362,365,367,372
345 PRINT "RETURNS A STRING THAT REPRESENTS THE VALUE OF THE NUMERIC VARIABLE 'A'."
346 PRINT : PRINT "E.G.": PRINT
347 PRINT "IF THE NUMERIC REAL VARIABLE 'A' HAS A VALUE OF 123, I.E. ONE HUNDRED AND TWENTY THREE, THE STATEMENT": PRINT
348 INVERSE : PRINT "LET A$=STR$(A)": NORMAL : PRINT
349 PRINT : PRINT "WILL CREATE A STRING OF THE CHARACTERS REPRESENTING THAT VALUE, I.E. " CHR$(34)"123" CHR$(34)", IN A$.";
350 PRINT " THIS STRING CANNOT ITSELF BE OPERATED UPON MATHEMATICALLY."
351 PRINT : PRINT "SEE THE FUNCTION ";: INVERSE : PRINT "VAL";: NORMAL : PRINT " FOR THE REVERSE."
352 GOSUB 5: GOTO 26
353 PRINT "MUST BE USED IN A ";: INVERSE : PRINT "PRINT";: NORMAL : PRINT " STATEMENT, AND BE FOLLOWED IMMEDIATELY BY A SEMI-COLON.";
354 PRINT "THE NEXT ITEM OF OUTPUT MAY BE PRINTED IN ANY COLUMN ACROSS THE SCREEN, DEPENDING ON THE VALUE OF 'X'. THE COLUMNS ARE NUMBERED 1-40, COUNTING FROMTHE LEFT MARGIN.";
355 PRINT " IF THE COLUMN HAS BEEN PASSED THE NEXT AVAILABLE IS USED."
362 PRINT "SETS SCREEN TO THE USUAL NON-GRAPHICS MODE, AND RESETS THE TEXT WINDOW TO THE FULL SCREEN, I.E. IF APPLE WAS IN GRAPHICS MODE, OR IF THE SCREEN WAS LOCKED IT WILL NOW BE IN NORMAL TEXT MODE.": PRINT
363 PRINT "THIS COMMAND MAY BE USED WITH OR WITHOUTA LINENUMBER."
364 GOSUB 5: GOTO 26
365 PRINT "CAUSES LINE NUMBER OF EACH STATEMENT TO BE DISPLAYED ON SCREEN AS IT IS OBEYED (EXECUTED). THIS STATEMENT MAY ONLY BE TURNED OFF BY ";: INVERSE : PRINT "NOTRACE";: NORMAL : PRINT "."
366 GOSUB 5: GOTO 26
367 PRINT "ATTEMPTS TO INTERPRET A STRING, UP TO THE FIRST NON-NUMERIC CHARACTER, AS A NUMBER. IF NO NUMBER OCCURS BEFORE THE FIRST NON-NUMERIC CHARACTER '0' IS RETURNED, OTHERWISE THE NUMERIC"
368 PRINT "EQUIVALENT OF THE STRING CHARACTERS IS RETURNED."